home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs54.d81
/
sgtool15.lzh
/
VDCELLIP.C
< prev
next >
Wrap
Text File
|
2009-10-10
|
1KB
|
65 lines
/*
SG C Tools 1.5
(C) 1993 Steve Goldsmith
All Rights Reserved
Compiled with HI-TECH C 3.09 (CP/M-80).
*/
#include <hitech.h>
#include <vdc.h>
/* draw ellipse */
void ellipsevdc(int XC, int YC, int A, int B)
{
int X, Y;
long AA, AA2, BB, BB2, D, DX, DY;
X = 0;
Y = B;
AA = (long) A*A;
AA2 = AA << 1;
BB = (long) B*B;
BB2 = BB << 1;
D = BB-AA*B+AA >> 2;
DX = 0;
DY = AA2*B;
setpixvdc(XC,YC-Y);
setpixvdc(XC,YC+Y);
while (DX < DY)
{
if (D > 0)
{
Y--;
DY -= AA2;
D -= DY;
}
X++;
DX += BB2;
D += (BB+DX);
setpixvdc(XC+X,YC+Y);
setpixvdc(XC-X,YC+Y);
setpixvdc(XC+X,YC-Y);
setpixvdc(XC-X,YC-Y);
}
D += (3*(AA-BB)/2-(DX+DY))/2;
while (Y > 0)
{
if (D < 0)
{
X++;
DX += BB2;
D += (BB+DX);
}
Y--;
DY -= AA2;
D += (AA-DY);
setpixvdc(XC+X,YC+Y);
setpixvdc(XC-X,YC+Y);
setpixvdc(XC+X,YC-Y);
setpixvdc(XC-X,YC-Y);
}
}